package zzps.exeed.kernel.convert.impl;

import zzps.exeed.kernel.convert.Converter;

import java.util.HashSet;
import java.util.Set;

public class BooleanConverter implements Converter<Boolean> {
    private static final Set<String> TRUE_SET = new HashSet(){{
        add("true");
        add("yes");
        add("y");
        add("t");
        add("ok");
        add("1");
        add("on");
        add("是");
        add("对");
        add("真");
        add("√");
    }};
    /** 表示为假的字符串 */
    private static final Set<String> FALSE_SET = new HashSet(){{
        add("false");
        add("no");
        add("n");
        add("f");
        add("0");
        add("off");
        add("否");
        add("错");
        add("假");
        add("×");
    }};
    @Override
    public Boolean convert(Object value) {
        if (value instanceof Number){
            return 0 != ((Number)value).intValue();
        }
        return TRUE_SET.contains(toStr(value));
    }
}
